import java.util.Arrays;

 class Test1 {


    //二维数组 --->两行三列的二维数组


    public static void main1(String[] args) {
        //创建二维数组
        int[][] arr1 = new int[][]{{1,2,3},{4,5,6}};
        int[][] arr = new int[][]{{1,2,3},{4,5,6}};
        int[][] arr2 = new int[2][3];
        int[][] arr3 = {{11,22,33},{44,55,66}};
        //遍历二维数组---》一行一行遍历
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; arr[i].length < 3; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
        System.out.println("=============");
        //二维数组的访问也是通过下标进行访问
        //C语言中，二维数组是特殊的一维数组，在Java中，将这句话诠释得更加清楚
        //for循环
        System.out.println(arr2[0]);;
        System.out.println(arr2[1]);
        System.out.println(Arrays.toString(arr2[0]));
        System.out.println(arr2.length);
        System.out.println(arr2[0].length);
        for(int[] ret : arr){
            for(int x:ret) {
                System.out.print(x + " ");
            }
            System.out.println();
        }
        //toString遍历
        System.out.println(Arrays.deepToString(arr2));

        //注意：在创建数组时，行不可以省略，列可以省略，和C语言相反
        int[][] arr4 = new int[3][];
        arr4[0] = new int[12];
        arr4[1] = new int[14];
        arr4[2] = new int[]{1,2,3,4,5};

        //Java可以创建不规则数组（数组元素指向的数组的长达大小不一）


    }

    public static int Count(int[] arr) {
        int count = 1;
        int key = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(count == 0) {
                key = arr[i];
                count = 1;
            }
            if(key == arr[i]) {
                count++;
            }else {
                count--;
            }
        }
        return key;
    }
}

//类和对象
//面向对象 OOP
//面向对象和面向过程：面向对象和面向过程是一种思想，在这种思想的指导下我们对代码进行组织。
//面向过程：关注的是实现的过程
//面向对象：关注各个实体之间的协作，通过对象之间的交互
//面向对象的三个特点：封装  多态  继承
//在Java中，一起皆对象。
//类————》什么是类？
//行为（）属性 （）
//语法
//class 类名 {
//     属性
//        public String name;
//        public int age;

//        public void sleep() {
//
//        }

//     行为
//}

public class Test {
     //什么是类
     //什么是对象


}

//一般来说，一个Java文件只定义一个类。而且这个类是public类
//一个文件可以有很多个类，但是public只能有一个
//每个类都可以有一个main函数，但最好将main放在public修饰的类当中
//public类的名称必须和文件名相同，不要直接修改类的名字，要通过修改文件名，进而修改类名

class Dog {
     public String name = "heihei";
     public int age;


}
//类的实例化：就是创建对象
//类---》对象的过程，叫做实例化，对象也叫做实体
//定义一个类，就相当于定义了一个新的类型，和八种基本类型一样，都是类型。
//对象的访问，通过引用变量.方法/属性访问
//一个类可以通过关键字new实例化多个对象
//属性：成员变量  行为：成员方法

//总结：class定义一个新的类型 new关键字创建一个对象的实例  使用 . 访问对象的属性和方法
//同一个类可以创建多个实例
class Student {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.name = "hehe";
        d.age = 10;
        System.out.println(d.name);
        System.out.println(d.age);
        //由类定义的变量是引用变量。引用变量存的是指向对象的地址。

        System.out.println(d.name);
        System.out.println(d.age);
    }

}

//类和对象的说明：

